6.10 Настройка dot1x
6.10.1 Обзор
Введение в функциональность
IEEE 802.1X применяется для контроля доступа к сети на уровне порта. Этот стандарт используется для аутентификации и авторизации устройств, подключённых к порту с точка-точка соединением, и для предотвращения доступа к порту при неудачной аутентификации.
При аутентификации на основе 802.1X устройства в сети выполняют следующие роли:
- Client - Устройство (например, ПК), которое запрашивает доступ к сети и отвечает на запросы коммутатора. Программное обеспечение клиента должно поддерживать стандарт 802.1X (например, приложение "xsupplicant" для Linux).
- Authentication server - Проводит проверку личности клиента и уведомляет коммутатор о том, разрешён ли доступ. Поскольку коммутатор выступает в роли прокси, служба аутентификации остаётся прозрачной для клиента. В этой версии системы поддерживается только сервер аутентификации RADIUS с расширениями протокола Extensible Authentication Protocol (EAP). RADIUS работает по модели клиент/сервер, в которой защищённая информация для аутентификации обменивается между сервером RADIUS и одним или несколькими клиентами RADIUS.
- Switch (edge switch or wireless access point) - Коммутатор контролирует физический доступ к сети на основе статуса аутентификации клиента. Он действует как посредник (прокси) между клиентом и сервером аутентификации, запрашивая у клиента информацию для идентификации, проверяя эту информацию на сервере аутентификации и передавая ответ клиенту.
Коммутатор включает клиент RADIUS, который отвечает за инкапсуляцию и деинкапсуляцию кадров EAP и взаимодействие с сервером аутентификации. Когда коммутатор получает кадры EAPOL и передаёт их на сервер аутентификации, Ethernet-заголовок удаляется, а оставшийся кадр EAP повторно инкапсулируется в формате RADIUS. Кадры EAP не изменяются и не анализируются во время инкапсуляции, и сервер аутентификации должен поддерживать EAP в его исходном формате.
Когда коммутатор получает кадры от сервера аутентификации, заголовок кадра сервера удаляется, оставляя кадр EAP, который затем инкапсулируется для Ethernet и отправляется клиенту.
Dot1x можно включить как на маршрутизируемом порту, так и на порту доступа.
Описание принципа работы
См. стандарт IEEE Std 802.1X-2004.
6.10.2 Конфигурация
Основная настройка dot1x

Рисунок 6-6: dot1x
Шаг 1: Перейдите в режим настройки
Switch# configure terminal
Шаг 2: Включите dot1x глобально
Switch(config)# dot1x system-auth-ctrl
Шаг 3: Настройте параметры интерфейса и включите dot1x
Switch(config)# interface eth-0-25
Switch(config-if)# switchport mode access
Switch(config-if)# dot1x port-control auto
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface vlan 1
Switch(config-if)# ip address 192.168.100.1/24
Switch(config-if)# exit
Шаг 4: Настройте параметры L3-интерфейса и сервер RADIUS
Switch(config)# interface eth-0-26
Switch(config-if)# no switchport
Switch(config-if)# ip address 202.38.100.1/24
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# radius-server host 202.38.100.7
Switch(config)# radius-server host 2001:1000::1
Switch(config)# radius-server key test
Switch(config)# exit
Шаг 5: Выйдите из режима настройки
Switch(config)# end
Шаг 6: Проверка
Проверка статуса dot1x:
Switch# show dot1x
802.1X Port-Based Authentication Enabled
RADIUS server address: 2001:1000::1:1812
Next radius message ID: 0
RADIUS server address: 202.38.100.7:1812
Next radius message ID: 0
Switch# show dot1x interface eth-0-25
802.1X info for interface eth-0-25
portEnabled : true
portControl : Auto
portMode : Port based
portStatus : Authorized
Mac Auth bypass : disabled
reAuthenticate : disabled
reAuthPeriod : 3600
Max user number : 255
Current session number : 1
Accept user number : 1
Reject user number : 0
Guest VLAN : N/A
Assign VLAN : N/A
QuietPeriod : 60
ReqMax : 2
TxPeriod : 30
SuppTimeout : 30
ServerTimeout : 30
CD: adminControlledDirections : in
CD: operControlledDirections : in
CD: bridgeDetected : false
========================================
session 1: 1 - 0011.0100.0001
----------------------------------------
user name : admin
abort:F fail:F start:F timeout:F success:T
PAE: state: Authenticated - portMode: Auto
PAE: reAuthCount: 0 - rxRespId: 0
BE: state: Idle - reqCount: 0 - idFromServer: 5
Настройка dot1x на маршрутизируемом порту
Пример выше описывает включение dot1x на порту доступа. Эта функция также может быть активирована на маршрутизируемом порту. Следующий пример демонстрирует, как изменить eth-0-25 на маршрутизируемый порт и включить dot1x.
Switch(config)# interface eth-0-25
Switch(config-if)# no switchport
Switch(config-if)# ip address 192.168.100.1/24
Switch(config-if)# dot1x port-control auto
Switch(config-if)# no shutdown
Switch(config-if)# exit
Использование режима принудительного управления
Режим управления dot1x портом может быть настроен как force-authorized или force-unauthorized.
Режим force-authorized:
Switch(config)# interface eth-0-25
Switch(config-if)# dot1x port-control force-authorized
Switch(config-if)# exit
Режим force-unauthorized:
Switch(config)# interface eth-0-25
Switch(config-if)# dot1x port-control force-unauthorized
Switch(config-if)# exit
Пользователь может выбрать режим управления портом: force-authorized, force-unauthorized или auto. Последняя конфигурация перезапишет предыдущую.
Включение учёта dot1x
Учёт dot1x может быть использован для отслеживания использования сети после аутентификации пользователя. По умолчанию учёт dot1x отключён. Его можно включить в глобальном режиме настройки.
Включение учёта dot1x:
Switch(config)# dot1x accounting-mode radius
После включения учёта dot1x устройство отправляет запрос начала учёта на сервер после аутентификации пользователя. Если соответствующий ответ не получен, необходимо настроить политику для обработки ошибок:
- online - Чтобы избежать влияния сетевых сбоев на пользователей, можно настроить политику, позволяющую пользователям оставаться онлайн.
- offline - Если учёт dot1x не запускается, можно настроить политику для отклонения пользователей.
Switch(config)# dot1x accounting start-fail online
Пользователь может настроить учёт в режиме реального времени, чтобы устройство периодически отправляло запросы учёта на сервер. Сервер сохраняет учёт пользователей только при получении запросов учёта в реальном времени, что помогает избежать ошибок учёта, если сервер не получает пакеты остановки учёта от устройства.
Кроме того, пользователь может настроить максимальное количество попыток учёта в реальном времени без ответа и действие при сбое учёта в реальном времени. По умолчанию максимальное количество попыток учёта в реальном времени без ответа установлено на 3, и пользователю разрешается оставаться в сети после сбоя учёта в реальном времени.
Switch(config)# dot1x accounting realtime 60
Switch(config)# dot1x accounting interim-fail max-times 2 offline
Дополнительные параметры dot1x
Таймер для RADIUS сервера:
- Установить время ожидания для повторной активации RADIUS сервера;
- Задать максимальное количество неудачных запросов к серверу;
- Установить тайм-аут для ответа от сервера.
Switch(config)# radius-server deadtime 10
Switch(config)# radius-server retransmit 5
Switch(config)# radius-server timeout 10
Атрибуты интерфейса:
- Указать количество попыток повторной аутентификации перед отключением;
- Задать версию протокола;
- Указать период тишины в состоянии HELD;
- Включить повторную аутентификацию на порту;
- Указать интервал между попытками повторной авторизации;
- Установить тайм-аут ответа сервера;
- Указать тайм-аут ответа клиента;
- Установить интервал между последовательными запросами ID.
Switch(config)# interface eth-0-25
Switch(config-if)# dot1x max-req 5
Switch(config-if)# dot1x protocol-version 1
Switch(config-if)# dot1x quiet-period 120
Switch(config-if)# dot1x reauthentication
Switch(config-if)# dot1x timeout re-authperiod 1800
Switch(config-if)# dot1x timeout server-timeout 60
Switch(config-if)# dot1x timeout supp-timeout 60
Switch(config-if)# dot1x timeout tx-period 60
Switch(config-if)# dot1x handshake
Switch(config-if)# dot1x timeout handshake-period 1
Switch(config-if)# exit
6.10.3 Примеры использования
Настройка сервера RADIUS (пример с использованием WinRadius)
Шаг 1: Открытие настроек
На сервере WinRadius (например) выберите меню "Setting -> System", как показано на рисунке ниже.

Рисунок 6-7: Выбор "Setting -> System"
Шаг 2: Конфигурация shared-key, порта авторизации и порта учёта
Настройте shared-key, порт авторизации и порт учёта. Эти параметры необходимы для взаимодействия сервера RADIUS с устройством.

Рисунок 6-8: Настройка shared-key, порта авторизации и порта учёта
Шаг 3: Добавление имени пользователя и пароля
На сервере добавьте имя пользователя и пароль для клиента, который будет использоваться для аутентификации.

Рисунок 6-9: Добавление имени пользователя и пароля на сервере